home *** CD-ROM | disk | FTP | other *** search
- /*
- File: ImageCodec.h
-
- Copyright: © 1991-1994 by Apple Computer, Inc., all rights reserved.
-
- */
-
- #ifndef __IMAGECODEC__
- #define __IMAGECODEC__
-
- #ifndef __QUICKDRAW__
- #include <Quickdraw.h>
- /* #include <Types.h> */
- /* #include <ConditionalMacros.h> */
- /* #include <MixedMode.h> */
- /* #include <Traps.h> */
- /* #include <QuickdrawText.h> */
- /* #include <IntlResources.h> */
- #endif
-
- #ifndef __QDOFFSCREEN__
- #include <QDOffscreen.h>
- #endif
-
- #ifndef __TYPES__
- #endif
-
- #ifndef __COMPONENTS__
- #include <Components.h>
- #endif
-
- #ifndef __IMAGECOMPRESSION__
- #include <ImageCompression.h>
- /* #include <StandardFile.h> */
- /* #include <Dialogs.h> */
- /* #include <Windows.h> */
- /* #include <Events.h> */
- /* #include <OSUtils.h> */
- /* #include <Controls.h> */
- /* #include <Menus.h> */
- /* #include <TextEdit.h> */
- /* #include <Files.h> */
- /* #include <SegLoad.h> */
- /* #include <ToolUtils.h> */
- /* #include <TextUtils.h> */
- /* #include <Script.h> */
- /* #include <FixMath.h> */
- #endif
-
- #define codecGetCodecInfo 0x00
-
- #define codecGetCompressionTime 0x01
-
- #define codecGetMaxCompressionSize 0x02
-
- #define codecPreCompress 0x03
-
- #define codecBandCompress 0x04
-
- #define codecPreDecompress 0x05
-
- #define codecBandDecompress 0x06
-
- #define codecCDSequenceBusy 0x07
-
- #define codecGetCompressedImageSize 0x08
-
- #define codecGetSimilarity 0x09
-
- #define codecTrimImage 0x0A
-
- #define codecRequestSettings 0x0B
-
- #define codecGetSettings 0x0C
-
- #define codecSetSettings 0x0D
-
- #define codecCDSequenceFlush 0x0E
-
- #define codecSetTimeCode 0x0F
-
- #define codecCanScale (1L<<0)
-
- #define codecCanMask (1L<<1)
-
- #define codecCanMatte (1L<<2)
-
- #define codecCanTransform (1L<<3)
-
- #define codecCanTransferMode (1L<<4)
-
- #define codecCanCopyPrev (1L<<5)
-
- #define codecCanSpool (1L<<6)
-
- #define codecCanClipVertical (1L<<7)
-
- #define codecCanClipRectangular (1L<<8)
-
- #define codecCanRemapColor (1L<<9)
-
- #define codecCanFastDither (1L<<10)
-
- #define codecCanSrcExtract (1L<<11)
-
- #define codecCanCopyPrevComp (1L<<12)
-
- #define codecCanAsync (1L<<13)
-
- #define codecCanMakeMask (1L<<14)
-
- #define codecCanShift (1L<<15)
-
- #define codecCanAsyncWhen (1L<<16)
-
- #define codecCanShieldCursor (1L<<17)
-
- #define codecCanManagePrevBuffer (1L<<18)
-
- #if defined(powerc) || defined (__powerc)
- #pragma options align=mac68k
- #endif
- struct CodecCapabilities {
- long flags;
- short wantedPixelSize;
- short extendWidth;
- short extendHeight;
- short bandMin;
- short bandInc;
- short pad;
- unsigned long time;
- };
- #if defined(powerc) || defined(__powerc)
- #pragma options align=reset
- #endif
-
- typedef struct CodecCapabilities CodecCapabilities;
-
- #define codecConditionFirstBand (1L<<0)
-
- #define codecConditionLastBand (1L<<1)
-
- #define codecConditionFirstFrame (1L<<2)
-
- #define codecConditionNewDepth (1L<<3)
-
- #define codecConditionNewTransform (1L<<4)
-
- #define codecConditionNewSrcRect (1L<<5)
-
- #define codecConditionNewMask (1L<<6)
-
- #define codecConditionNewMatte (1L<<7)
-
- #define codecConditionNewTransferMode (1L<<8)
-
- #define codecConditionNewClut (1L<<9)
-
- #define codecConditionNewAccuracy (1L<<10)
-
- #define codecConditionNewDestination (1L<<11)
-
- #define codecConditionFirstScreen (1L<<12)
-
- #define codecConditionDoCursor (1L<<13)
-
- #define codecConditionCatchUpDiff (1L<<14)
-
- #define codecConditionCodecChangedMask (1L<<31)
-
- #define codecInfoResourceType 'cdci'
-
- #define codecInterfaceVersion 2
-
- #if defined(powerc) || defined (__powerc)
- #pragma options align=mac68k
- #endif
- struct CodecCompressParams {
- ImageSequence sequenceID;
- ImageDescriptionHandle imageDescription;
- Ptr data;
- long bufferSize;
- long frameNumber;
- long startLine;
- long stopLine;
- long conditionFlags;
- CodecFlags callerFlags;
- CodecCapabilities *capabilities;
- ICMProgressProcRecord progressProcRecord;
- ICMCompletionProcRecord completionProcRecord;
- ICMFlushProcRecord flushProcRecord;
- PixMap srcPixMap;
- PixMap prevPixMap;
- CodecQ spatialQuality;
- CodecQ temporalQuality;
- Fixed similarity;
- DataRateParamsPtr dataRateParams;
- long reserved;
- };
- #if defined(powerc) || defined(__powerc)
- #pragma options align=reset
- #endif
-
- typedef struct CodecCompressParams CodecCompressParams;
-
- #if defined(powerc) || defined (__powerc)
- #pragma options align=mac68k
- #endif
- struct CodecDecompressParams {
- ImageSequence sequenceID;
- ImageDescriptionHandle imageDescription;
- Ptr data;
- long bufferSize;
- long frameNumber;
- long startLine;
- long stopLine;
- long conditionFlags;
- CodecFlags callerFlags;
- CodecCapabilities *capabilities;
- ICMProgressProcRecord progressProcRecord;
- ICMCompletionProcRecord completionProcRecord;
- ICMDataProcRecord dataProcRecord;
- CGrafPtr port;
- PixMap dstPixMap;
- BitMapPtr maskBits;
- PixMapPtr mattePixMap;
- Rect srcRect;
- MatrixRecord *matrix;
- CodecQ accuracy;
- short transferMode;
- ICMFrameTimePtr frameTime;
- long reserved[1];
- char matrixFlags;
- char matrixType;
- Rect dstRect;
- };
- #if defined(powerc) || defined(__powerc)
- #pragma options align=reset
- #endif
-
- typedef struct CodecDecompressParams CodecDecompressParams;
-
- #define matrixFlagScale2x (1L<<7)
-
- #define PREAMBLE Handle storage
-
- extern pascal ComponentResult CDGetCodecInfo(Handle storage, CodecInfo *info);
- extern pascal ComponentResult CDGetCompressionTime(Handle storage, PixMapHandle src, const Rect *srcRect, short depth, CodecQ *spatialQuality, CodecQ *temporalQuality, unsigned long *time);
- extern pascal ComponentResult CDGetMaxCompressionSize(Handle storage, PixMapHandle src, const Rect *srcRect, short depth, CodecQ quality, long *size);
- extern pascal ComponentResult CDPreCompress(Handle storage, CodecCompressParams *params);
- extern pascal ComponentResult CDBandCompress(Handle storage, CodecCompressParams *params);
- extern pascal ComponentResult CDPreDecompress(Handle storage, CodecDecompressParams *params);
- extern pascal ComponentResult CDBandDecompress(Handle storage, CodecDecompressParams *params);
- extern pascal ComponentResult CDCodecBusy(Handle storage, ImageSequence seq);
- extern pascal ComponentResult CDGetCompressedImageSize(Handle storage, ImageDescriptionHandle desc, Ptr data, long bufferSize, ICMDataProcRecordPtr dataProc, long *dataSize);
- extern pascal ComponentResult CDGetSimilarity(Handle storage, PixMapHandle src, const Rect *srcRect, ImageDescriptionHandle desc, Ptr data, Fixed *similarity);
- extern pascal ComponentResult CDTrimImage(Handle storage, ImageDescriptionHandle Desc, Ptr inData, long inBufferSize, ICMDataProcRecordPtr dataProc, Ptr outData, long outBufferSize, ICMFlushProcRecordPtr flushProc, Rect *trimRect, ICMProgressProcRecordPtr progressProc);
- extern pascal ComponentResult CDRequestSettings(Handle storage, Handle settings, Rect *rp, ModalFilterUPP filterProc);
- extern pascal ComponentResult CDGetSettings(Handle storage, Handle settings);
- extern pascal ComponentResult CDSetSettings(Handle storage, Handle settings);
- extern pascal ComponentResult CDCodecFlush(Handle storage);
- extern pascal ComponentResult CDCodecSetTimeCode(Handle storage, void *timeCodeFormat, void *timeCodeTime);
- #endif
-
-